package Access;

import ExtEntities.ExtComposition;
import ExtEntities.VeryExtComposition;
import java.util.LinkedList;
import javax.ejb.Remote;

/**
 *
 * @author 647_2
 */
@Remote
public interface CompositionsRemote {
    public LinkedList<ExtComposition> getCompositionsByGroupID(int groupID, int start, int count);
    public LinkedList<ExtComposition> getCompositionsByAlbumID(int albumID, int start, int count);
    public LinkedList<ExtComposition> getCompositionsByGenreID(int genreID, int start, int count);

    public LinkedList<ExtComposition> getAllCompositions();
    public LinkedList<ExtComposition> getAllCompositions(int start, int count);

    public ExtComposition getComposition(int ID);
    public VeryExtComposition getFullComposition(int ID);

    public boolean AddComposition(String name, Double duration);
    public boolean UpdateComposition(int ID, String name, Double duration);

    public boolean DeleteComposition(int ID);

    public boolean AddGroupToComposition(int ID, int gID);
    public boolean DeleteGroupOfComposition(int ID, int gID);

    public boolean AddGenreToComposition(int ID, int gID);
    public boolean DeleteGenreOfComposition(int ID, int gID);

    public boolean AddExecutorWithInstrumentToComposition(int ID, int ewiID);
    public boolean DeleteExecutorWithInstrumentOfComposition(int ID, int ewiID);

    public boolean AddURLToComposition(int ID, String url);
    public boolean DeleteURLOfComposition(int urlID);

    public boolean AddRatingToComposition(int ID, int uID, double rating, String comment);
}
